package com.lh.nk;

import java.util.HashMap;
import java.util.Map;

/**
 * @author: linghao
 * @since: 2023/1/31
 *
 * 描述
 * 给出一个整型数组 numbers 和一个目标值 target，请在数组中找出两个加起来等于目标值的数的下标，返回的下标按升序排列。
 * （注：返回的数组下标从1开始算起，保证target一定可以由数组里面2个数字相加得到）
 */
public class 两数之和NC61 {


    public int[] twoSum (int[] numbers, int target) {
        // write code here
        //利用map做
        Map<Integer,Integer> aMap = new HashMap<>();
        for(int i=0;i<numbers.length;i++){
            if(aMap.containsKey(target - numbers[i])){
                return new int[]{aMap.get(target - numbers[i])+1,i+1};
            }else{
                aMap.put(numbers[i],i);
            }
        }
        return null;
    }
}
